package com.jy.modules.cims.component.api;


public enum InteractClassInvokeEnum {

	/******************************************
	 ***************** 贷款转出 ******************
	 ******************************************/
	/** 贷款额度申请 */
	APPLY_LOAN_QUOTA("jy.loan.quota.apply", "com.jy.modules.cims.component.api.JieYueReceiveImpl", "applyQuota",
			"com.jy.modules.cims.data.interact.api.request.RequestQuotaApplyDTO", "贷款额度申请"),

	/** 推送贷款审批结果 */
	DEAL_AUDIT_RESULT("jy.loan.audit.result", "com.jy.modules.cims.component.api.JieYueReceiveImpl", "dealAuditResult",
			"com.jy.modules.cims.data.interact.api.request.RequestAuditResultReceiveDTO", "推送贷款审批结果"),

	/** 推送贷款放款结果 */
	DEAL_LOAN_RESULT("jy.loan.loan.result", "com.jy.modules.cims.component.api.JieYueReceiveImpl", "dealLoanResult",
			"com.jy.modules.cims.data.interact.api.request.RequestLoanResultReceiveDTO", "推送贷款放款结果"),

	/** 查询进件列表 */
	SEARCH_LOAN_BASE("jy.loan.base.search", "com.jy.modules.cims.component.api.JieYueReceiveImpl", "searchLoanBase",
			"com.jy.modules.cims.data.interact.api.request.RequestLoanBaseSearchDTO", "查询进件列表"),

	/** 查进件详细信息 */
	SEARCH_LOAN_DETAIL("jy.loan.detail.search", "com.jy.modules.cims.component.api.JieYueReceiveImpl", "searchLoanDetail",
			"com.jy.modules.cims.data.interact.api.request.RequestLoanDetailSearchDTO", "查进件详细信息"),

	/** 查询进件附件信息 */
	SEARCH_LOAN_ATTACH("jy.loan.attach.search", "com.jy.modules.cims.component.api.JieYueReceiveImpl", "searchLoanAttach",
			"com.jy.modules.cims.data.interact.api.request.RequestAttachSearchDTO", "查询进件附件信息"),

	/** 贷款回购申请 */
	APPLY_LOAN_REDEMPTION("jy.loan.redemption.apply", "com.jy.modules.cims.component.api.JieYueReceiveImpl", "applyLoanRedemption",
			"com.jy.modules.cims.data.interact.api.request.RequestLoanRedemptionApplyDTO", "贷款回购申请"),

	/** (查询)贷款还款通知 */
	NOTICE_LOAN_REPAYMENT("jy.loan.repayment.notice", "com.jy.modules.cims.component.api.JieYueReceiveImpl", "searchLoanCostPlan",
			"com.jy.modules.cims.data.interact.api.request.RequestLoanRepaymentNoticeDTO", "(查询)贷款还款通知"),

	/** 查询贷款还款计划信息 */
	SEARCH_LOAN_REFUNDPLAN("jy.loan.refundplan.search", "com.jy.modules.cims.component.api.JieYueReceiveImpl", "searchRefundPlan",
			"com.jy.modules.cims.data.interact.api.request.RequestRefundPlanSearchDTO", "查询贷款还款计划信息"),

	/******************************************
	 ***************** 债权转让 ******************
	 ******************************************/
	/** 债权额度申请 */
	APPLY_CREDIT_QUOTA("jy.credit.quota.apply", "com.jy.modules.cims.component.api.JieYueReceiveImpl", "applyQuota",
			"com.jy.modules.cims.data.interact.api.request.RequestQuotaApplyDTO", "债权额度申请"),

	/** 查询债权信息 */
	SEARCH_CREDIT_BASE("jy.credit.base.search", "com.jy.modules.cims.component.api.JieYueReceiveImpl", "searchCreditBase",
			"com.jy.modules.cims.data.interact.api.request.RequestCreditBaseSearchDTO", "查询债权信息"),

	/** 推送债权审批结果 */
	DEAL_TRANSFER_RESULT("jy.credit.audit.result", "com.jy.modules.cims.component.api.JieYueReceiveImpl", "dealTransferResult",
			"com.jy.modules.cims.data.interact.api.request.RequestTransferResultReceiveDTO", "推送债权审批结果"),

	/** 债权赎回申请 */
	APPLY_CREDIT_REDEMPTION("jy.credit.redemption.apply", "com.jy.modules.cims.component.api.JieYueReceiveImpl", "applyCreditRedemption",
			"com.jy.modules.cims.data.interact.api.request.RequestCreditRedemptionApplyDTO", "债权赎回申请"),

	/** (查询)债权还款通知 */
	NOTICE_CREDIT_REPAYMENT("jy.credit.repayment.notice", "com.jy.modules.cims.component.api.JieYueReceiveImpl", "searchCreditCostPlan",
			"com.jy.modules.cims.data.interact.api.request.RequestCreditRepaymentNoticeDTO", "(查询)债权还款通知"),

	/** 查询债权附件信息 */
	SEARCH_CREDIT_ATTACH("jy.credit.attach.search", "com.jy.modules.cims.component.api.JieYueReceiveImpl", "searchCreditAttach",
			"com.jy.modules.cims.data.interact.api.request.RequestAttachSearchDTO", "查询债权附件信息"),

	/** 查询还款计划信息 */
	SEARCH_CREDIT_REFUNDPLAN("jy.credit.refundplan.search", "com.jy.modules.cims.component.api.JieYueReceiveImpl", "searchRefundPlan",
			"com.jy.modules.cims.data.interact.api.request.RequestRefundPlanSearchDTO", "查询还款计划信息"),

	
	/******************************************
	 ***************** 资金存管 ******************
	 ******************************************/
	ACCOUNT_FUNDS_DRAWNOTICE("jy.borrow.account.withdrawals.notice", "com.jy.modules.cims.component.api.JieYueReceiveImpl", "searchRefundPlan",
			"com.jy.modules.cims.data.interact.api.request.RequestRefundPlanSearchDTO", "借款人开户结果查询");

	
	
	
	/** API接口名称,接口标示 */
	private String interfaceMark;

	/** 类名 */
	private String className;

	/** 方法名 */
	private String methodName;

	/** 参数类型 */
	private String paramterName;
	
	/** 接口描述 */
	private String description;

	private InteractClassInvokeEnum(String interfaceMark, String className, String methodName, String paramterName, String description) {
		this.interfaceMark = interfaceMark;
		this.className = className;
		this.methodName = methodName;
		this.paramterName = paramterName;
		this.description = description;
	}

	public String getInterfaceMark() {
		return interfaceMark;
	}

	public void setInterfaceMark(String interfaceMark) {
		this.interfaceMark = interfaceMark;
	}

	public String getClassName() {
		return className;
	}

	public void setClassName(String className) {
		this.className = className;
	}

	public String getMethodName() {
		return methodName;
	}

	public void setMethodName(String methodName) {
		this.methodName = methodName;
	}

	public String getParamterName() {
		return paramterName;
	}

	public void setParamterName(String paramterName) {
		this.paramterName = paramterName;
	}

	public String getDescription() {
		return description;
	}

	public void setDescription(String description) {
		this.description = description;
	}

	/**
	 * 
	 * @param interfaceMark
	 * @return
	 */
	public static InteractClassInvokeEnum getInteractClassInvokeEnumByInterfaceMark(String interfaceMark) {
		InteractClassInvokeEnum[] enums = InteractClassInvokeEnum.values();
		for (InteractClassInvokeEnum interactClassInvoke : enums) {
			if (interfaceMark.equals(interactClassInvoke.getInterfaceMark())) {
				return interactClassInvoke;
			}
		}

		return null;
	}
}
